<?php
/*

  Форм-процессор
  * see http://in.jetstyle.ru/rocket/rocketforms

  FormComponent_options( &$config )
      - $field -- $field->config instance-a пол€  

  -------------------

  * interface   : ѕ–ќ—“ќ… ¬џЅќ–. Выбор из списка через select или radio.
  * view        : ѕ–ќ—“ќ… ¬џЅќ–. Выводит значение дл€ ключа из field->config["options"], оформляя его в шаблон.

  -------------------

  // интерфейс (парсинг и обработка данных)
  
  * Interface_Parse()
  * Interface_PostToArray( $post_data )
  * View_Parse( $plain_data=NULL )

================================================================== v.0 (kuso@npj)
*/

$this->UseClass("Form_FormComponents_view_plain");

class FormComponent_options extends FormComponent_view_plain
{
   // INTERFACE ==============================================================================
   // парсинг полей интерфейса
   function Interface_Parse()
   {
     $data = $this->field->model->Model_GetDataValue();
     
     //пометка выбранного - в зависимости от типа
     $selected_mark = $this->field->config["options_mode"]=="radio" ? "checked=\"checked\"" : "selected=\"selected\"";
     
     //формируем опции для отображения
     $A1 = $this->field->config["options"];
     $A2 = array();
     foreach($A1 as $value=>$title_data) {
     	$r = array();
     	if (is_array($title_data)) {
     		$r = $title_data;
     	} else {
     		$r["title"] = $title_data;
     	}
        
        $r["value"] = $value;
        $r["selected"] = $data==$value ? $selected_mark : "";
        $A2[] = $r;
     }
     
		$this->field->tpl_data['interface_data'] = $data;
     //собственно рендеринг
     $result = FormComponent_abstract::Interface_Parse();
	$view = $this->field->rh->views->findByName($this->field->form->config["template_prefix_group"].
		                                             $this->field->config["interface_tpl"]);
	debug($this->field->form->config["template_prefix_group"].$this->field->config["interface_tpl"]);
	$view->data = $this->field->tpl_data;
	$view->data['options'] = $A2;

	return $view->getContent();
   }
   // преобразование из поста в массив для загрузки моделью
   function Interface_PostToArray( $post_data )
   {
      return array(
                $this->field->name => rtrim($post_data["_".$this->field->name]),
                   );
   }

   // VIEW ==============================================================================
   // парсинг readonly значений
   function View_Parse( $plain_data=NULL ){
     $data = $this->field->config["options"][ $plain_data!=NULL ? $plain_data : $this->field->model->Model_GetDataValue() ];
     return FormComponent_view_plain::View_Parse($data);
   }

   
// EOC{ FormComponent_options }
}  
   

?>
